package day9;

/*
* 静态代码块
* */
public class Demo10 {
    //定义静态常量
    public static final String COMPANY_NAME;
    private  String name;

    public Demo10(){
        System.out.println("无参构造执行");
        System.out.println("------");
    }

    public Demo10(String name){
        this.name = name;
        System.out.println("有参构造方法执行");
        System.out.println("------");
    }
    //构造代码块，在类中的数量不限制，执行顺序按照代码的顺序
    {
        System.out.println("构造代码块1执行");

    }
    {
        System.out.println("构造代码块2执行");

    }

    //静态代码块， 在类中的数量不限制，执行顺序按照代码的顺序
    // 在首次以任意方式使用该类时执行，并且只执行一次，在构造代码块和构造方法之前执行
    static {
        //给静态常量赋值
        COMPANY_NAME = "百杉";
        System.out.println("静态代码块1执行");
    }
    static {
        System.out.println("静态代码块2执行");
    }

}

class Test{
    public static void main(String[] args) {
        System.out.println(Demo10.COMPANY_NAME);
        System.out.println("-------");
        Demo10 demo10 = new Demo10("张三");
//
        Demo10 demo101 = new Demo10();

    }
}
